name: tests_hybrid run_id: commands[0] env HOME: /home/jenkins env LANG: C.UTF-8 env PATH: /w/workspace/transportpce-tox-verify-transportpce-master/.tox/tests_hybrid/bin:/opt/pyenv/bin:/tmp/venv-x3nx/bin:/opt/pyenv/shims:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin env PYTHONHASHSEED: 3508474241 env PIP_DISABLE_PIP_VERSION_CHECK: 1 env PYTHONIOENCODING: utf-8 env USE_ODL_ALT_KARAF_ENV: ./karaf121.env env USE_ODL_ALT_KARAF_INSTALL_DIR: karaf_hybrid env TOX_ENV_NAME: tests_hybrid env TOX_WORK_DIR: /w/workspace/transportpce-tox-verify-transportpce-master/.tox env TOX_ENV_DIR: /w/workspace/transportpce-tox-verify-transportpce-master/.tox/tests_hybrid env VIRTUAL_ENV: /w/workspace/transportpce-tox-verify-transportpce-master/.tox/tests_hybrid metadata pid: 62293 cwd: /w/workspace/transportpce-tox-verify-transportpce-master/tests allow: /w/workspace/transportpce-tox-verify-transportpce-master/.tox/tests_hybrid/bin/*:launch_tests.sh cmd: ./launch_tests.sh hybrid exit_code: 1 using environment variables from ./karaf121.env pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py FFFFFFFFFFFF.FFF.FFF.FF.FFF.FF.FFF.FF.FFF.FFFFFFFFF [100%] =================================== FAILURES =================================== ________________ TransportPCEFulltesting.test_01_connect_xpdrA _________________ self = def test_01_connect_xpdrA(self): response = test_utils.mount_device("XPDRA01", ('xpdra', self.NODE_VERSION_121)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:97: AssertionError ---------------------------- Captured stdout setup ----------------------------- starting OpenDaylight... starting KARAF TransportPCE build... Searching for pattern 'Transportpce controller started' in karaf.log... Pattern found! OpenDaylight started ! starting simulator xpdra in OpenROADM device version 1.2.1... Searching for pattern 'Data tree change listeners registered' in xpdra-121.log... Pattern found! simulator for xpdra started starting simulator roadma in OpenROADM device version 2.2.1... Searching for pattern 'Data tree change listeners registered' in roadma-221.log... Pattern found! simulator for roadma started starting simulator roadmc in OpenROADM device version 2.2.1... Searching for pattern 'Data tree change listeners registered' in roadmc-221.log... Pattern found! simulator for roadmc started starting simulator xpdrc in OpenROADM device version 7.1... Searching for pattern 'Data tree change listeners registered' in xpdrc-71.log... Pattern found! simulator for xpdrc started ----------------------------- Captured stdout call ----------------------------- execution of test_01_connect_xpdrA Searching for pattern 'Triggering notification stream NETCONF for node XPDRA01' in karaf.log... Pattern not found after 180 seconds! Node XPDRA01 still not added to tpce topology... ________________ TransportPCEFulltesting.test_02_connect_xpdrC _________________ self = def test_02_connect_xpdrC(self): response = test_utils.mount_device("XPDR-C1", ('xpdrc', self.NODE_VERSION_71)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:102: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_02_connect_xpdrC Searching for pattern 'Triggering notification stream NETCONF for node XPDR-C1' in karaf.log... Pattern not found after 180 seconds! Node XPDR-C1 still not added to tpce topology... _________________ TransportPCEFulltesting.test_03_connect_rdmA _________________ self = def test_03_connect_rdmA(self): response = test_utils.mount_device("ROADM-A1", ('roadma', self.NODE_VERSION_221)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:107: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_03_connect_rdmA Searching for pattern 'Triggering notification stream NETCONF for node ROADM-A1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-A1 still not added to tpce topology... _________________ TransportPCEFulltesting.test_04_connect_rdmC _________________ self = def test_04_connect_rdmC(self): response = test_utils.mount_device("ROADM-C1", ('roadmc', self.NODE_VERSION_221)) > self.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) E AssertionError: 401 != 201 : Http status code should be 201 transportpce_tests/hybrid/test01_device_change_notifications.py:112: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_04_connect_rdmC Searching for pattern 'Triggering notification stream NETCONF for node ROADM-C1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-C1 still not added to tpce topology... ________ TransportPCEFulltesting.test_05_connect_xpdrA_N1_to_roadmA_PP1 ________ self = def test_05_connect_xpdrA_N1_to_roadmA_PP1(self): > response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-xpdr-rdm-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_05_connect_xpdrA_N1_to_roadmA_PP1 ________ TransportPCEFulltesting.test_06_connect_roadmA_PP1_to_xpdrA_N1 ________ self = def test_06_connect_roadmA_PP1_to_xpdrA_N1(self): > response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'XPDRA01', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-rdm-xpdr-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-A1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_06_connect_roadmA_PP1_to_xpdrA_N1 ________ TransportPCEFulltesting.test_07_connect_xpdrC_N1_to_roadmC_PP1 ________ self = def test_07_connect_xpdrC_N1_to_roadmC_PP1(self): > response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', {'links-input': {'xpdr-node': 'XPDR-C1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-xpdr-rdm-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_07_connect_xpdrC_N1_to_roadmC_PP1 ________ TransportPCEFulltesting.test_08_connect_roadmC_PP1_to_xpdrC_N1 ________ self = def test_08_connect_roadmC_PP1_to_xpdrC_N1(self): > response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-rdm-xpdr-links', {'links-input': {'xpdr-node': 'XPDR-C1', 'xpdr-num': '1', 'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX'}}) transportpce_tests/hybrid/test01_device_change_notifications.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'transportpce-networkutils', rpc = 'init-rdm-xpdr-links' payload = {'links-input': {'network-num': '1', 'rdm-node': 'ROADM-C1', 'srg-num': '1', 'termination-point-num': 'SRG1-PP1-TXRX', ...}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'transportpce-networkutils:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_08_connect_roadmC_PP1_to_xpdrC_N1 _______ TransportPCEFulltesting.test_09_add_omsAttributes_ROADMA_ROADMC ________ self = def test_09_add_omsAttributes_ROADMA_ROADMC(self): # Config ROADMA-ROADMC oms-attributes data = {"span": { "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, "engineered-spanloss": 12.2, "link-concatenation": [{ "SRLG-Id": 0, "fiber-type": "smf", "SRLG-length": 100000, "pmd": 0.5}]}} response = test_utils.add_oms_attr_request( "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX", data) > self.assertEqual(response.status_code, requests.codes.created) E AssertionError: 401 != 201 transportpce_tests/hybrid/test01_device_change_notifications.py:161: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_09_add_omsAttributes_ROADMA_ROADMC _______ TransportPCEFulltesting.test_10_add_omsAttributes_ROADMC_ROADMA ________ self = def test_10_add_omsAttributes_ROADMC_ROADMA(self): # Config ROADMC-ROADMA oms-attributes data = {"span": { "auto-spanloss": "true", "spanloss-base": 11.4, "spanloss-current": 12, "engineered-spanloss": 12.2, "link-concatenation": [{ "SRLG-Id": 0, "fiber-type": "smf", "SRLG-length": 100000, "pmd": 0.5}]}} response = test_utils.add_oms_attr_request( "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX", data) > self.assertEqual(response.status_code, requests.codes.created) E AssertionError: 401 != 201 transportpce_tests/hybrid/test01_device_change_notifications.py:177: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_10_add_omsAttributes_ROADMC_ROADMA _____________ TransportPCEFulltesting.test_11_create_eth_service1 ______________ self = def test_11_create_eth_service1(self): > response = test_utils.transportpce_api_rpc_request( 'org-openroadm-service', 'service-create', self.cr_serv_input_data) transportpce_tests/hybrid/test01_device_change_notifications.py:181: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'org-openroadm-service', rpc = 'service-create' payload = {'common-id': 'ASATT1234567', 'connection-type': 'service', 'due-date': '2016-11-28T00:00:01Z', 'operator-contact': 'pw1234', ...} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'org-openroadm-service:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_11_create_eth_service1 _______________ TransportPCEFulltesting.test_12_get_eth_service1 _______________ self = def test_12_get_eth_service1(self): > response = test_utils.get_ordm_serv_list_attr_request( "services", "service1") transportpce_tests/hybrid/test01_device_change_notifications.py:190: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_12_get_eth_service1 ___________ TransportPCEFulltesting.test_14_check_update_portmapping ___________ self = def test_14_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:212: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_14_check_update_portmapping _________ TransportPCEFulltesting.test_15_check_update_openroadm_topo __________ self = def test_15_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:230: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_15_check_update_openroadm_topo ____________ TransportPCEFulltesting.test_16_check_update_service1 _____________ self = def test_16_check_update_service1(self): > response = test_utils.get_ordm_serv_list_attr_request("services", "service1") transportpce_tests/hybrid/test01_device_change_notifications.py:263: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_16_check_update_service1 _________ TransportPCEFulltesting.test_18_check_update_portmapping_ok __________ self = def test_18_check_update_portmapping_ok(self): > response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:282: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_18_check_update_portmapping_ok ________ TransportPCEFulltesting.test_19_check_update_openroadm_topo_ok ________ self = def test_19_check_update_openroadm_topo_ok(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:294: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_19_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_20_check_update_service1_ok ___________ self = def test_20_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:311: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_20_check_update_service1_ok ___________ TransportPCEFulltesting.test_22_check_update_portmapping ___________ self = def test_22_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("ROADM-A1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:326: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'ROADM-A1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_22_check_update_portmapping _________ TransportPCEFulltesting.test_23_check_update_openroadm_topo __________ self = def test_23_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:344: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_23_check_update_openroadm_topo _________ TransportPCEFulltesting.test_25_check_update_portmapping_ok __________ self = def test_25_check_update_portmapping_ok(self): > self.test_18_check_update_portmapping_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:389: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:282: in test_18_check_update_portmapping_ok response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_25_check_update_portmapping_ok ________ TransportPCEFulltesting.test_26_check_update_openroadm_topo_ok ________ self = def test_26_check_update_openroadm_topo_ok(self): > self.test_19_check_update_openroadm_topo_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:392: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:294: in test_19_check_update_openroadm_topo_ok self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 ----------------------------- Captured stdout call ----------------------------- execution of test_26_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_27_check_update_service1_ok ___________ self = def test_27_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:395: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_27_check_update_service1_ok ___________ TransportPCEFulltesting.test_29_check_update_portmapping ___________ self = def test_29_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("ROADM-A1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:410: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'ROADM-A1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_29_check_update_portmapping _________ TransportPCEFulltesting.test_30_check_update_openroadm_topo __________ self = def test_30_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:428: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_30_check_update_openroadm_topo _________ TransportPCEFulltesting.test_32_check_update_portmapping_ok __________ self = def test_32_check_update_portmapping_ok(self): > self.test_18_check_update_portmapping_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:282: in test_18_check_update_portmapping_ok response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_32_check_update_portmapping_ok ________ TransportPCEFulltesting.test_33_check_update_openroadm_topo_ok ________ self = def test_33_check_update_openroadm_topo_ok(self): > self.test_19_check_update_openroadm_topo_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:476: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:294: in test_19_check_update_openroadm_topo_ok self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 ----------------------------- Captured stdout call ----------------------------- execution of test_33_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_34_check_update_service1_ok ___________ self = def test_34_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:479: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_34_check_update_service1_ok ___________ TransportPCEFulltesting.test_36_check_update_portmapping ___________ self = def test_36_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("XPDR-C1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:492: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDR-C1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_36_check_update_portmapping _________ TransportPCEFulltesting.test_37_check_update_openroadm_topo __________ self = def test_37_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:510: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_37_check_update_openroadm_topo _________ TransportPCEFulltesting.test_39_check_update_portmapping_ok __________ self = def test_39_check_update_portmapping_ok(self): > self.test_18_check_update_portmapping_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:282: in test_18_check_update_portmapping_ok response = test_utils.get_portmapping_node_attr("XPDRA01", None, None) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'XPDRA01', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_39_check_update_portmapping_ok ________ TransportPCEFulltesting.test_40_check_update_openroadm_topo_ok ________ self = def test_40_check_update_openroadm_topo_ok(self): > self.test_19_check_update_openroadm_topo_ok() transportpce_tests/hybrid/test01_device_change_notifications.py:556: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:294: in test_19_check_update_openroadm_topo_ok self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 ----------------------------- Captured stdout call ----------------------------- execution of test_40_check_update_openroadm_topo_ok ___________ TransportPCEFulltesting.test_41_check_update_service1_ok ___________ self = def test_41_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:559: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_41_check_update_service1_ok ___________ TransportPCEFulltesting.test_43_check_update_portmapping ___________ self = def test_43_check_update_portmapping(self): > response = test_utils.get_portmapping_node_attr("ROADM-A1", None, None) transportpce_tests/hybrid/test01_device_change_notifications.py:574: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = 'ROADM-A1', attr = 'nodes', value = None def get_portmapping_node_attr(node: str, attr: str, value: str): # pylint: disable=consider-using-f-string url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}'} target_url = url[RESTCONF_VERSION].format('{}', node) if attr is not None: target_url = (target_url + '/{}').format('{}', attr) if value is not None: suffix = {'rfc8040': '={}', 'draft-bierman02': '/{}'} target_url = (target_url + suffix[RESTCONF_VERSION]).format('{}', value) else: attr = 'nodes' response = get_request(target_url) res = response.json() return_key = {'rfc8040': 'transportpce-portmapping:' + attr, 'draft-bierman02': attr} if return_key[RESTCONF_VERSION] in res.keys(): return_output = res[return_key[RESTCONF_VERSION]] else: > return_output = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:477: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_43_check_update_portmapping _________ TransportPCEFulltesting.test_44_check_update_openroadm_topo __________ self = def test_44_check_update_openroadm_topo(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:592: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_44_check_update_openroadm_topo ___________ TransportPCEFulltesting.test_45_check_update_service1_ok ___________ self = def test_45_check_update_service1_ok(self): > self.test_12_get_eth_service1() transportpce_tests/hybrid/test01_device_change_notifications.py:618: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ transportpce_tests/hybrid/test01_device_change_notifications.py:190: in test_12_get_eth_service1 response = test_utils.get_ordm_serv_list_attr_request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ attribute = 'services', value = 'service1' def get_ordm_serv_list_attr_request(attribute: str, value: str): url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} format_args = ('{}', attribute, value) response = get_request(url[RESTCONF_VERSION].format(*format_args)) res = response.json() return_key = {'rfc8040': 'org-openroadm-service:' + attribute, 'draft-bierman02': attribute} if return_key[RESTCONF_VERSION] in res.keys(): response_attribute = res[return_key[RESTCONF_VERSION]] else: > response_attribute = res['errors']['error'][0] E KeyError: 'errors' transportpce_tests/common/test_utils.py:636: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_45_check_update_service1_ok _____________ TransportPCEFulltesting.test_46_delete_eth_service1 ______________ self = def test_46_delete_eth_service1(self): self.del_serv_input_data["service-delete-req-info"]["service-name"] = "service1" > response = test_utils.transportpce_api_rpc_request( 'org-openroadm-service', 'service-delete', self.del_serv_input_data) transportpce_tests/hybrid/test01_device_change_notifications.py:622: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ api_module = 'org-openroadm-service', rpc = 'service-delete' payload = {'sdnc-request-header': {'notification-url': 'http://localhost:8585/NotificationServer/notify', 'request-id': 'e3028ba...ame', 'rpc-action': 'service-delete'}, 'service-delete-req-info': {'service-name': 'service1', 'tail-retention': 'no'}} def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): # pylint: disable=consider-using-f-string url = "{}/operations/{}:{}".format('{}', api_module, rpc) if payload is None: data = None elif RESTCONF_VERSION == 'draft-bierman02': data = prepend_dict_keys({'input': payload}, api_module + ':') else: data = {'input': payload} response = post_request(url, data) if response.status_code == requests.codes.no_content: return_output = None else: res = response.json() return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} if response.status_code == requests.codes.internal_server_error: return_output = res else: > return_output = res[return_key[RESTCONF_VERSION]] E KeyError: 'org-openroadm-service:output' transportpce_tests/common/test_utils.py:694: KeyError ----------------------------- Captured stdout call ----------------------------- execution of test_46_delete_eth_service1 ________ TransportPCEFulltesting.test_47_disconnect_xponders_from_roadm ________ self = def test_47_disconnect_xponders_from_roadm(self): response = test_utils.get_ietf_network_request('openroadm-topology', 'config') > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 401 != 200 transportpce_tests/hybrid/test01_device_change_notifications.py:632: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_47_disconnect_xponders_from_roadm _______________ TransportPCEFulltesting.test_48_disconnect_XPDRA _______________ self = def test_48_disconnect_XPDRA(self): response = test_utils.unmount_device("XPDRA01") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:642: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_48_disconnect_XPDRA Searching for pattern 'onDeviceDisConnected:\ XPDRA01' in karaf.log... Pattern not found after 180 seconds! Node XPDRA01 still not deleted from tpce topology... _______________ TransportPCEFulltesting.test_49_disconnect_XPDRC _______________ self = def test_49_disconnect_XPDRC(self): response = test_utils.unmount_device("XPDR-C1") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:646: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_49_disconnect_XPDRC Searching for pattern 'onDeviceDisConnected:\ XPDR\-C1' in karaf.log... Pattern not found after 180 seconds! Node XPDR-C1 still not deleted from tpce topology... ______________ TransportPCEFulltesting.test_50_disconnect_ROADMA _______________ self = def test_50_disconnect_ROADMA(self): response = test_utils.unmount_device("ROADM-A1") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:650: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_50_disconnect_ROADMA Searching for pattern 'onDeviceDisConnected:\ ROADM\-A1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-A1 still not deleted from tpce topology... ______________ TransportPCEFulltesting.test_51_disconnect_ROADMC _______________ self = def test_51_disconnect_ROADMC(self): response = test_utils.unmount_device("ROADM-C1") > self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) E AssertionError: 401 not found in (200, 204) transportpce_tests/hybrid/test01_device_change_notifications.py:654: AssertionError ----------------------------- Captured stdout call ----------------------------- execution of test_51_disconnect_ROADMC Searching for pattern 'onDeviceDisConnected:\ ROADM\-C1' in karaf.log... Pattern not found after 180 seconds! Node ROADM-C1 still not deleted from tpce topology... --------------------------- Captured stdout teardown --------------------------- all processes killed =========================== short test summary info ============================ FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_01_connect_xpdrA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_02_connect_xpdrC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_03_connect_rdmA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_04_connect_rdmC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_05_connect_xpdrA_N1_to_roadmA_PP1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_06_connect_roadmA_PP1_to_xpdrA_N1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_07_connect_xpdrC_N1_to_roadmC_PP1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_08_connect_roadmC_PP1_to_xpdrC_N1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_09_add_omsAttributes_ROADMA_ROADMC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_10_add_omsAttributes_ROADMC_ROADMA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_11_create_eth_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_12_get_eth_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_14_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_15_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_16_check_update_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_18_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_19_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_20_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_22_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_23_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_25_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_26_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_27_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_29_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_30_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_32_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_33_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_34_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_36_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_37_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_39_check_update_portmapping_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_40_check_update_openroadm_topo_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_41_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_43_check_update_portmapping FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_44_check_update_openroadm_topo FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_45_check_update_service1_ok FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_46_delete_eth_service1 FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_47_disconnect_xponders_from_roadm FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_48_disconnect_XPDRA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_49_disconnect_XPDRC FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_50_disconnect_ROADMA FAILED transportpce_tests/hybrid/test01_device_change_notifications.py::TransportPCEFulltesting::test_51_disconnect_ROADMC 42 failed, 9 passed in 1504.09s (0:25:04)